add db

chengzhenyu %!s(int64=8) %!d(string=hace) años
padre
commit
f4f3410a2c

+ 47 - 0
app/src/main/java/ai/pai/lensman/db/DBHelper.java

@@ -26,6 +26,27 @@ public class DBHelper extends SQLiteOpenHelper{
26 26
 
27 27
     }
28 28
 
29
+    public static final String ORDER_INFO_TABLE = "order_info_table";
30
+
31
+    public interface ORDER_INFO_COLUMNS {
32
+        String ORDER_ID = "order_id";
33
+        String ORDER_MONEY = "order_money";
34
+        String ORDER_TIME = "order_time";
35
+        String BUYER_ID = "buyer_id";
36
+        String BUYER_NAME = "buyer_name";
37
+        String PHOTO_ID = "photo_id";
38
+        String PHOTO_NAME = "photo_name";
39
+        String PHOTO_PATH = "photo_path";
40
+        String CAPTURE_TIME = "capture_time";
41
+        String SESSION_ID = "session_id";
42
+        String LENSMAN_ID = "lensman_id";
43
+        String SESSION_DATE = "session_date";
44
+        String SESSION_SEQ = "session_seq";
45
+        String IS_RAW_PHOTO= "is_raw_photo";
46
+        String UPLOADED_STATUS = "upload_status";
47
+
48
+    }
49
+
29 50
 
30 51
     private DBHelper(Context context){
31 52
         super(context,DB_NAME,null,DB_VERSION);
@@ -50,6 +71,7 @@ public class DBHelper extends SQLiteOpenHelper{
50 71
 
51 72
     private void createTables(SQLiteDatabase db){
52 73
         createPhotoTable(db,PHOTO_INFO_TABLE);
74
+        createOrderTable(db,ORDER_INFO_TABLE);
53 75
     }
54 76
 
55 77
 
@@ -71,4 +93,29 @@ public class DBHelper extends SQLiteOpenHelper{
71 93
         db.execSQL(sql.toString());
72 94
     }
73 95
 
96
+    private void createOrderTable(SQLiteDatabase db, String tableName){
97
+        StringBuilder sql = new StringBuilder();
98
+        sql.append("CREATE TABLE IF NOT EXISTS ");
99
+        sql.append(tableName).append("(");
100
+        sql.append(ORDER_INFO_COLUMNS.PHOTO_ID).append(" LONG PRIMARY KEY, ");
101
+
102
+        sql.append(ORDER_INFO_COLUMNS.ORDER_ID).append(" VARCHAR, ");
103
+        sql.append(ORDER_INFO_COLUMNS.BUYER_ID).append(" VARCHAR, ");
104
+        sql.append(ORDER_INFO_COLUMNS.BUYER_NAME).append(" VARCHAR, ");
105
+        sql.append(ORDER_INFO_COLUMNS.ORDER_MONEY).append(" FLOAT, ");
106
+        sql.append(ORDER_INFO_COLUMNS.ORDER_TIME).append(" LONG, ");
107
+
108
+        sql.append(ORDER_INFO_COLUMNS.PHOTO_NAME).append(" VARCHAR, ");
109
+        sql.append(ORDER_INFO_COLUMNS.PHOTO_PATH).append(" VARCHAR, ");
110
+        sql.append(ORDER_INFO_COLUMNS.LENSMAN_ID).append(" VARCHAR, ");
111
+        sql.append(ORDER_INFO_COLUMNS.SESSION_ID).append(" VARCHAR, ");
112
+        sql.append(ORDER_INFO_COLUMNS.IS_RAW_PHOTO).append(" INTEGER, ");
113
+        sql.append(ORDER_INFO_COLUMNS.SESSION_SEQ).append(" INTEGER, ");
114
+        sql.append(ORDER_INFO_COLUMNS.SESSION_DATE).append(" LONG, ");
115
+        sql.append(ORDER_INFO_COLUMNS.UPLOADED_STATUS).append(" INTEGER, ");
116
+        sql.append(ORDER_INFO_COLUMNS.CAPTURE_TIME).append(" LONG ");
117
+        sql.append(")");
118
+        db.execSQL(sql.toString());
119
+    }
120
+
74 121
 }

+ 92 - 0
app/src/main/java/ai/pai/lensman/service/OrderDealService.java

@@ -0,0 +1,92 @@
1
+package ai.pai.lensman.service;
2
+
3
+import android.app.Service;
4
+import android.content.Intent;
5
+import android.os.Binder;
6
+import android.os.IBinder;
7
+
8
+import com.android.common.executors.ThreadExecutor;
9
+import com.android.common.utils.LogHelper;
10
+
11
+import ai.pai.lensman.bean.PhotoBean;
12
+import ai.pai.lensman.db.DBService;
13
+
14
+public class OrderDealService extends Service implements UploadTask.OnPhotoUploadListener{
15
+
16
+    private PhotoBean currentPhoto;
17
+    private PhotoUploadListener listener;
18
+
19
+    @Override
20
+    public IBinder onBind(Intent intent) {
21
+        return new MyBinder();
22
+    }
23
+
24
+    @Override
25
+    public int onStartCommand(Intent intent, int flags, int startId) {
26
+        if(intent!=null && intent.getSerializableExtra("photo")!=null){
27
+            PhotoBean bean = (PhotoBean) intent.getSerializableExtra("photo");
28
+            bean.uploadStatus = PhotoBean.UploadStatus.STATUS_NO_BEGIN;
29
+            DBService.getInstance().updatePhotoBean(bean);
30
+        }
31
+            startUpload();
32
+        return super.onStartCommand(intent, flags, startId);
33
+    }
34
+
35
+    private synchronized void startUpload(){
36
+        if(currentPhoto!=null){
37
+            LogHelper.d("czy","当前有图片正在上传"+currentPhoto);
38
+            return;
39
+        }
40
+         currentPhoto = DBService.getInstance().getNextUploadPhoto();
41
+        if(currentPhoto==null){
42
+            LogHelper.d("czy","本地图片已全部上传");
43
+            return;
44
+        }
45
+        LogHelper.d("czy","即将上传的照片是"+currentPhoto);
46
+        new UploadTask(currentPhoto,this).executeOnExecutor(ThreadExecutor.getInstance().getExecutor());
47
+    }
48
+
49
+    @Override
50
+    public void onPhotoUploadSucceed(PhotoBean bean) {
51
+        if(bean.equals(currentPhoto)){
52
+            currentPhoto.uploadStatus =  PhotoBean.UploadStatus.STATUS_SUCCESS;
53
+            DBService.getInstance().updatePhotoBean(currentPhoto);
54
+            if(listener!=null){
55
+                listener.onPhotoUploaded(currentPhoto);
56
+            }
57
+            currentPhoto = null;
58
+        }
59
+        startUpload();
60
+    }
61
+
62
+    @Override
63
+    public void onPhotoUploadFail(PhotoBean bean) {
64
+        if(bean.equals(currentPhoto)){
65
+            currentPhoto.uploadStatus =  PhotoBean.UploadStatus.STATUS_ERROR;
66
+            DBService.getInstance().updatePhotoBean(currentPhoto);
67
+            if(listener!=null){
68
+                listener.onPhotoUploadError(currentPhoto);
69
+            }
70
+            currentPhoto = null;
71
+        }
72
+        startUpload();
73
+    }
74
+
75
+    public void setPhotoUploadListener(PhotoUploadListener listener){
76
+        this.listener = listener;
77
+    }
78
+
79
+    public interface PhotoUploadListener{
80
+        void onPhotoUploaded(PhotoBean bean);
81
+        void onPhotoUploadError(PhotoBean bean);
82
+    }
83
+
84
+    public class MyBinder extends Binder {
85
+
86
+        public OrderDealService getService(){
87
+            return OrderDealService.this;
88
+        }
89
+
90
+    }
91
+
92
+}